//
//  AlarmDataBase.h
//  SIPphone
//
//  Created by wrt on 14-2-14.
//  Copyright (c) 2014年 wrtsoft. All rights reserved.
//

#import <Foundation/Foundation.h>
#import <sqlite3.h>

//报警信息的宏定义
#define ALARM_STARTTIME @"alarmStartTime"   //报警发布的时间
#define ALARM_ENDTIME @"alarmEndTime"       //报警处理的时间
#define ALARM_TYPE @"alarmType"             //报警的类型
#define ALARM_RESULT @"alarmResult"         //报警事务的处理结果，“已处理”
#define ALARM_PUBLISHURI @"alarmPublishUri" //发布者的uri地址（联系地址格式sip:username@domain）
#define ALARM_ALARMURI @"alarmAlarmUri"     //报警源uri地址
#define ALARM_REMARK @"alarmRemark"         //报警备注
#define ALARM_TOMANAGER @"alarmTomanager"   //信息是否给管理中心或者管理机（0:不报告 1:报告 2:两者同时报告）
#define ALARM_STATUS @"alarmStatus"         //未读已读的状态
#define ALARM_RECEIVETIME @"alarmReceiveTime" //接收到警报的时间

//用alarmtype ＋ alarmuri ＋ starttime 来确定警情信息的唯一性

@interface AlarmDataBase : NSObject
{
    sqlite3 *db;
}

//存储从数据库获取出来的报警源uri地址
@property (nonatomic, strong) NSString *tempAlarmUri;
//存储从数据库获取出来的发布者uri地址
@property (nonatomic, strong) NSString *tempPublishUri;
//存储从数据库获取出来的报警发布的时间
@property (nonatomic, strong) NSString *tempStartTime;
//存储从数据库获取出来的报警处理的时间
@property (nonatomic, strong) NSString *tempEndTime;
//存储从数据库获取出来的报警事务的处理结果，“已处理”
@property (nonatomic, strong) NSString *tempResult;
//存储从数据库获取出来的报警备注
@property (nonatomic, strong) NSString *tempRemark;
//存储从数据库获取出来的 信息是否给管理中心或者管理机
@property (nonatomic, assign) int tempTomanager;
//存储从数据库获取出来的类型
@property (nonatomic, assign) int tempAlarmType;
//存储从数据库获取出来的状态
@property (nonatomic, strong) NSString *tempAlarmStatus;
//存储从数据库获取出来的接收信息时间
@property (nonatomic, strong) NSString *tempAlarmReceiveTime;

//================全部读取=================
//读取出来的报警源uri地址数组
@property (nonatomic, strong) NSMutableArray *alarmUriArray;
//读取出来的发布者uri地址数组
@property (nonatomic, strong) NSMutableArray *publishUriArray;
//读取出来的报警发布的时间数组
@property (nonatomic, strong) NSMutableArray *startTimeArray;
//读取出来的报警处理的时间数组
@property (nonatomic, strong) NSMutableArray *endTimeArray;
//读取出来的报警处理的时间数组
@property (nonatomic, strong) NSMutableArray *resultArray;
//读取出来的报警事务的处理结果数组
@property (nonatomic, strong) NSMutableArray *remarkArray;
//读取出来的信息是否给管理中心或者管理机的数组
@property (nonatomic, strong) NSMutableArray *tomanagerArray;
//读取出来的数据库获取出来的类型数组
@property (nonatomic, strong) NSMutableArray *alarmTypeArray;
//读取出来的未读已读的状态数组
@property (nonatomic, strong) NSMutableArray *alarmStatusArray;
//读取出来的接收时间的数组
@property (nonatomic, strong) NSMutableArray *alarmReceiveTimeArray;


//===============部分读取==================
//部分读取出来的报警源uri地址数组
@property (nonatomic, strong) NSMutableArray *partAlarmUriArray;
//部分读取出来的发布者uri地址数组
@property (nonatomic, strong) NSMutableArray *partPublishUriArray;
//部分读取出来的报警发布的时间数组
@property (nonatomic, strong) NSMutableArray *partStartTimeArray;
//部分读取出来的报警处理的时间数组
@property (nonatomic, strong) NSMutableArray *partEndTimeArray;
//部分读取出来的报警处理的时间数组
@property (nonatomic, strong) NSMutableArray *partResultArray;
//部分读取出来的报警事务的处理结果数组
@property (nonatomic, strong) NSMutableArray *partRemarkArray;
//部分读取出来的信息是否给管理中心或者管理机的数组
@property (nonatomic, strong) NSMutableArray *partTomanagerArray;
//部分读取出来的数据库获取出来的类型数组
@property (nonatomic, strong) NSMutableArray *partAlarmTypeArray;
//部分读取出来的未读已读的状态数组
@property (nonatomic, strong) NSMutableArray *partAlarmStatusArray;
//部分读取出来的接收时间数组
@property (nonatomic, strong) NSMutableArray *partAlarmReceiveTimeArray;

//定义表名的属性
@property (strong, nonatomic) NSString *tableNameForUser;

//单例的初始化方法
+ (AlarmDataBase *)shareAlarmDataBase;
//创建数据库
- (void)creatDB;
//读取数据库
- (void)readDB;
//写数据库操作
- (void)writeIntoDatabaseWithAlarmUri:(NSString *)alarmUri andPublishUri:(NSString *)publishUri andStartTime:(NSString *)startTime andEndTime:(NSString *)endTime andResult:(NSString *)result andRemark:(NSString *)remark andTomanager:(int)tomanager andAlarmType:(int)alarmType;
//删除数据库全部内容
- (void)removeAlldata;
//删除单个数据
- (void)deleteWithStartTime:(NSString *)StartTime andAlarmUri:(NSString *)alarmUri andAlarmtype:(int)alarmtype;
//修改数据库未读状态的方法
- (void)editStatusWithStartTime:(NSString *)StartTime andAlarmUri:(NSString *)alarmUri andAlarmtype:(int)alarmtype;
//获取未读的条数
- (int)countForUnread;
//获取部分信息15一组
- (void)readDBForpartWithBeginNumber:(int)begin;

//切换表名
- (void)changeTableName:(NSString *)userName;
@end
